If this is a first time you visiting Scrolls, please register in Fight Club. If you already registered, please authorize on Fight Club start page with your login and password.
В данной статье я хочу рассмотреть процедуру включения кеширования изображений в клиенте AutoCombats http://www.autocombats.info при работе в ОС MS Windows 7 RC1 x64 http://www.microsoft.com Встроенное средство кеширования АК при работе в данной ОС, к сожалению, приводит к периодическим зависаниям клиента. Попытки использовать различные версии библиотеки urlmon(6).dll не принесли положительного результата. А играть в БК через GPRS без использования кеширования было не совсем удобно. Было найдено следующее решение: использовать отдельную программу, для кеширования изображений. Существует множество программ, организующих локальный кеширующий прокси сервер. Я остановил свой выбор на HandyCache. Программа бесплатна, нетребовательна к ресурсам, имеет подробную документацию. Итак приступим к установке и настройке. С сайта программы http://www.handycache.ru/ скачиваем дистрибутив http://handycache.ru/component/option,com_remository/Itemid,2/func,fileinfo/id,28/. Устанавливаем программу из дистрибутива, все параметры оставляем по умолчанию. Если программа сама не запустилась, запускаем ее из меню Пуск. Теперь можно приступить к настройкам.
Переходим на вкладку настройки, и слева выбираем Общие -> Вид и расставляем галочки как показано на рисунке
Здесь главное поставить галочки "Стартовать вместе с Windows" и "Сворачивать вместо закрытия" иначе нам придется запускать HandyCache каждый раз, когда мы хотим поиграть в БК. Идем дальше.
Выбираем слева Кеш -> Преобразование URL и снимаем сверху галочку "Разрешен" как показано на следующем рисунке:
Тем самым мы исключили вмешательство прокси сервера в передаваемые URL (нам ведь только картинки надо кешировать, а не оптимизировать работу БК). Идем дальше.
Выбираем слева Списки -> Белый Здесь необходимо создать только одно правило: " Правило: +* Исключение: +*img.combats* " и расставляем напротив правила все галочки. Все остальные правила удаляем, и ставим сверху галочку "Разрешен". В итоге у нас должно получится:
Это правило позволит проходить через наш прокси без изменения всем соединениям, кроме обращений к серверу картинок БК. Нажимаем справа иконку "Сохранить список". Идем дальше.
Выбираем слева Списки -> Черный и снимаем сверху галочку "Разрешен" как показано на следующем рисунке:
Тем самым мы отключили встроенное средство резки баннеров и прочего мусора. На сервере картинок БК ничего подобного нет. Нажимаем справа иконку "Сохранить список". Идем дальше
Выбираем слева Списки -> Запись в кеш. Создаем только одно правило: " Правило: .* Исключение: +*clock.swf* " Остальные правила удаляем, сверху ставим галочки "Разрешен" и "Только для Get-запросов". В результате мы должны получить
Теперь мы пишем в наш локальный кеш все содержимое сервера картинок БК, кроме часов в правом нижнем углу экрана. Нажимаем справа иконку "Сохранить список". Идем дальше
Выбираем слева Списки -> Не обновлять. УДАЛЯЕМ ВСЕ ПРАВИЛА. Создаем только одно правило: " Правило: (.)*\.(jpg|jpeg|png|gif|bmp|ico) ". Сверху ставим галочки "Разрешен" и "Только для Get-запросов". В результате мы должны получить
Тем самым мы всегда берем изображения из локального кеша (если они конечно там есть) а не с сервера БК. Таким образом мы загружаем каждую картинку только один раз. Идем дальше
Выбираем слева Списки -> Только из кеша и снимаем сверху галочку "Разрешен" как показано на следующем рисунке:
Эта настройка позволит нам записывать в кеш не обнаруженные там изображения. Нажимаем справа иконку "Сохранить список". Идем дальше (осталось совсем немного)
Выбираем слева Списки -> Переадресация Создаем только одно правило: " Правило: +img.combats.ru Замена: img.combats.com " ставим галочки "Заменить все" и "Обязательный". Остальные правила удаляем, сверху ставим галочку "Разрешен". В результате мы должны получить
Несмотря на то что БК уже давно переехал в зону .com в коде страниц еще встречаются упоминания зоны .ru Данная замена позволит нам кешировать все обращения к картинкам в зоне .ru в ту же папку, что и картинки в зоне .com. Нажимаем справа иконку "Сохранить список". Все, настройка закончена. Остался последний штрих. Делаем правый клик по иконке HandyCache в трее и расставляем галочки как показано на рисунке:
после чего, в том же меню нажимаем кнопку "Сохранить настройки".
Теперь нам осталось только настроить AutoCombats на использование нашего прокси. Отрываем AutoCombats идем в Сервис -> Параметры -> Подключение и выбираем "Использовать прокси-сервер" 127.0.0.1:8080, как показано на рисунке:
Теперь выбираем слева Кеширование и снимаем галку "Выполнять кеширование изображений с сервера БК. Выглядеть это должно так:
Нажимаем OK, перезапускаем AutoCombats. Поздравляю. Теперь Autocombats работает через кеширующий прокси сервер. Если у Вас уже есть сохранненый кеш картинок БК (а он обычно лежит в папке Cache в директории, куда установлен AutoCombats) можно скопировать его в кеш нашего прокси-сервера по адресу <Директория установки HandyCache>\Cache\img.combats.com\i\
Вот собственно и все. Автор выражает огромную благодарность автору AutoCombats Gorby DS [] и своему соклану Маг-Хаоса [12] который оказал неоценимую помощь, во время тестирования данного решения в подземельях Эмеральда.
UPDATE: БЫла обнаружена проблема, что при использовании локального прокси Windows ограничивает кол-во одновременных соединений к серверу до одного. Что бы избежать данного негативного эффекта создаем reg файл следующего содержания:
UPDATE В связи с подписанием нового пользовательского соглашения сообщаю, что вышеописанный кеширующий прокси сервер легко подключается к любой версии IE через меню Internet Options - Connections - Lan settings - Proxy Server. Активируем использование прокси сервера, адрес 127.0.0.1 порт 8080
Вам запрещено комментирование в скроллах. Причина: Character level to low
Теперь кешируются картинки со всех сайтов, кроме городов бк (скроллы, форум, img.combats.com - все кеширутся). Но тут надо быть очень внимательным, ибо на некоторых сайтах могут быть глюки. Так например на сайте паладинов могут быть проблемы с отрытием инфы персонажей, приходится в переадресацию добавлять вот правило: Правило: +http://www.paladins.ru/cache_image.php?T=0&I= Замена <Пусто>
Так, тут думать надо. Белый список это то что HC не кеширует. Т.е. тебе нужно сделать правило типа не кешировать все, а в исключение добавить те сайты, которые надо кешировать.... Хитрая регэкспа должна получится. Буду думать.
Ну неужели нету простого пути - указал что кешировать и только оно и будет кешироваться, иначе эту программу делал какой то не очень нормальный человек.
Извиняюсь за долгое отсутсвие, было много дел в реале. Значит так: для того что бы включить кеширование для определенного набора доменов, например: img.combats.com img.combats.ru domain1.info domain2.biz В Белом спсике создаем только одно правило +* а в исключение к нему прописываем: (.)*(img\.combats\.com|img\.combats\.ru|domain1\.info|domain2\.biz)(.)*
Что то оно не очень работает. Вначале пытался закешировать рисунки со скроллов: написал (.)*(img\.scrolls\.combats\.com|img\.scrolls\.combats\.ru|domain1\.info|domain2\.biz)(.)* поставил все галочки, но в кеше ничего не появляется.
Гость БК
10-09-09 @ 10:33
Re: Re: Re:
Вечером посмотрю, почему не работает... Кей Лацитис
Настроил, посмотрел. У меня все работает. Для кеширования картинок с img.combats.com(ru) и скроллов надо настроить следующее исключение (.)*(img\.combats\.com|img\.combats\.ru|img3\.combats\.com|scrolls\.combats\.com)(.)* вот как это должно окончательно выглядеть:
PS домены "domain1\.info|domain2\.biz" я просто привел в качастве примера :)
PPS - следует отметить, что IE сам имеет свой собственный кеш, и часто картинки подгружаются из него, а не через связку IE+AK+HC
Примеры привел, так как было влом описывать как пишется регэкспа для исключений. В принципе в ней нет ничего сложного: (.)* -- обозначает любой набор символов (xxxxxx|yyyyyyyy|zzzzzzzzz) -- это либо xxxxxx либо yyyyyyyy либо zzzzzzzzz \. -- просто точка, так как знак "." в регэкспах означает любой символ
таким образом исключение строится как: сначала идет любой набор символов (.)* потом набор названий сайтов, для которых мы делаем исключение (img\.combats\.com|img\.combats\.ru|img3\.combats\.com|scrolls\.combats\.com), и в конце опять любой набор символов (.)* Таким образом, любая ссылка на искомые сайты этой регэкспой отловится. Например: ссылка http://scrolls.combats.com/i/avatar/small/021.jpg будет обрабатываться так: http:// -- этот набор символов попадает во множество (.)* scrolls.combats.com -- этот набор символов содержится в (img\.combats\.com|img\.combats\.ru|img3\.combats\.com|scrolls\.combats\.com) /i/avatar/small/021.jpg -- а это снова (.)* таким образом регэкспа целиком укладывается в ссылку, а значит данная ссылка будет исключена из правила Белого списка и уйдет на дальнейшую обработку.
Только я спрашивал про то зачем нужна и как работает конкретно эта надпись "domain1\.info|domain2\.biz"
добавляет в список сайтов, которые надо кешировать два сайта: domain1.info и domain2.biz - я же не знал какие именно сайты ты хочешь кешировать, вот и привел эти два в качестве примера. Это только пример и не более того.